家庭网络折腾记

最近媳妇总是吐槽家里的网速慢,我一想家里是个200M的网络,不应该慢啊,而实际使用的体验其实慢还不是主要问题,主要问题是经常性地断流,平均几天就得重启一次路由器,遂想到目前家里的这个网络配置其实已经五六年没改过了,新时代是需要有提升了,因此有了这一轮折腾。

影响网速和网络稳定性的根源有4个:
a. 猫有没有升级到千兆猫
b. 需要一个强大的路由器专管路由功能
c. 需要稳定的无线信号发射装置
d. 所有连接线需要支持千兆网络

为了实现a,当然就是打电话找联通客服,第二天就上们给换了个千兆猫,赞效率,其中有些小插曲是iptv用不了又换了两次猫,但维修人员响应速度还是不错的。

再说b,这个地方问题来了,其实最简单的办法是买一个高端的路由器,因为我对国产品牌的路由心存芥蒂,所以tp、水星、腾达之类基本都绕过了,新兴的小米等褒贬不一,而能够在视野范围内的就是网件、华硕这类做工扎实的企业了。同时考虑到将来可能还是会折腾路由刷个第三方系统、自带翻墙什么的,所以还是需要尽可能地配置高一些。综上,可选的产品的价格就一千起往上了,而且随着时间的推移这个配置还会面临过时的问题。

一、软路由

这个时候软路由出现在我的视野里,它是一台X86架构的微型PC,可以在上面跑各种系统,尤其是稳定性著称的linux,用来做服务器再合适不过,这认知得益于以前管理实验室网络的时候,三年没有重启过网关的linux机器几次。同时还有专门为路由场景优化的linux系统,例如lede,还是相当心动的。

某鱼二手590拿下一个赛扬双核1.9GHz+4G的配置,开始立马着手折腾了:

  1. 在这里下载系统盘:http://firmware.koolshare.cn/LEDE_X64_fw867/
  2. 将解压缩出来的IMG文件,通过老毛桃PE打开physdiskwrite软件写入U盘:physkiskwrite -u usb.img
  3. 然后重启软路由通过默认WEB:192.168.1.1 用户名:root 密码:koolshare 进入

但安装后的体验并不好,一个原因是网络感觉卡卡的,速度也达不到带宽能到到的满速,同时CPU温度长年在47度左右,感觉略烫手,对于内存占用率小于1%的系统,着实令人奇怪,另外还有一个原因:有些神奇的功能不见了,导致没有了折腾的兴趣。所以最终我又使用phydiskwrite写盘的方式装回了debian,熟悉的一切又回来了。

二、网关配置

首先最新版的debian对网卡的命名开始让人懵逼了,不再是eth0,eth1这种,而变成了enp3s0这种,因此需要使用cat/proc/net/dev先看下网卡名称再配置。

a. 配置拨号

既然路由功能挪到了软路由上,安装pppoe拨号包不可避免:

1
2
sudo apt install pppoeconf
sudo pppoeconf

b. LAN配置

跟大多数家用路由器一样,网关的LAN口需要拥有一个固定的内网IP地址,这里我设置为 192.168.100.1/24(假设LAN网段为192.168.100.0/24),编辑 /etc/network/interfaces,添加LAN口配置:

1
2
3
auto enp2s0f0
iface enp2s0f0 inet static
address 192.168.100.1/24

c. DHCP和DNS服务器

dnsmasq帮你一站式搞定:sudo apt install dnsmasq
编辑/etc/dnsmasq.conf,添加如下配置:

1
2
3
4
interface=enp2s0f0
listen-address=192.168.100.1
dhcp-range=192.168.100.10,192.168.100.150,255.255.255.0,12h
dhcp-option=3,192.168.100.1

重启生效:

1
2
sudo systemctl restart networking
sudo systemctl restart dnsmasq

d. IP转发和NAT

光有IP地址还不够,作为网关,必须要能够转发来自局域网的所有数据。编辑 /etc/sysctl.conf,将 net.ipv4.ip_forward这一行的注释去掉:

1
net.ipv4.ip_forward=1

然后执行 sudo sysctl -f 使其生效。

同时,为了使局域网内的设备能够访问外网,还需要配置NAT规则:

1
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

另外,如果有端口映射需求的话可以用如下命令配置:

1
iptables -t nat -A PREROUTING -d [外网ip] -p tcp -m tcp --dport [端口号] -j DNAT --to-destination [内网ip]:[端口号]

用以下命令保存iptables设置:

1
iptables-save > /etc/iptables/rules.v4

至此配置完成,路由网络已通,实测轻松达到带宽上限,且路由温度稳定在36度,满意满意~

三、无线信号收发

有了强大的路由后,其实家里就不需要路由功能了,因此对于传统路由器的路由功能依赖就降低了,我一直使用的是netgear的路由器,其自带接入点模式,即将路由转换成桥接模式,路由专心于无线信号的收发,遂120块再掏了一个三年前的路由R6220,因为6220是四个全千兆口,所以也满足了有线千兆的愿望。

不过R6220也不是没有问题,在2.4G和5G双频工作状态下2.4G的速度会被极大压制,可能也有周围wifi的干扰问题,导致2.4G处于不可用状态,所以所幸就把新路由的2.4G关了,让它专心工作在5G,而老路由重新登场为几个不支持5G网络的智能音箱续命。新老路由都工作在接入点模式上,路由对速度的影响降到最低。

参考资料